package com.frank.oj.service.oj;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.frank.oj.common.result.CommonResult;
import com.frank.oj.model.entity.RecentContest;
import com.frank.oj.model.vo.*;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @author frank
 * @Date 2023/12/20
 */
public interface HomeService {
    CommonResult<List<ContestVO>> getRecentContest();

    CommonResult<List<HashMap<String, Object>>> getHomeCarousel();

    CommonResult<List<ACMRankVO>> getRecentSevenACRank();

    CommonResult<List<RecentUpdatedProblemVO>> getRecentUpdatedProblemList();

    CommonResult<Map<Object, Object>> getWebConfig();

    CommonResult<IPage<AnnouncementVO>> getCommonAnnouncement(Integer limit, Integer currentPage);

    CommonResult<SubmissionStatisticsVO> getLastWeekSubmissionStatistics(Boolean forceRefresh);

    CommonResult<Map<String,Object>> getRecentOtherContest();
}
